Datagramas

Como vemos en la figura a continuación, la red tiene 3 componentes principales. En primer lugar, el protocolo IP. En segundo lugar, los protocolos de ruteo, que determinan el camino que debe seguir el paquete para llegar desde la fuente hacia el destino, completando las tablas de Forwarding. Y el componente final es la facilidad de reportar errores en los datagramas y responder con información de la capa de red, a través del protocolo ICMP.

Pasted image 20221117132248.png

Como mencionamos anteriormente, un paquete de capa de red es llamado datagrama.

El datagrama en IP (en este caso IPv4) tiene el siguiente formato:

  • Número de versión: (4 bits) especifica el número de versión del protocolo IP del datagrama. A partir del número de versión, el router puede determinar cómo interpretar el resto del datagrama IP.
  • Longitud de cabecera (4 bits)
  • Tipo de servicio: Diferencian los distintos tipos de datagramas IP.
  • Longitud del datagrama: (16 bits) longitud de los datos más cabecera.
  • Identificador, indicadores, desplazamiento de fragmentación: usado para la fragmentación
  • Tiempo de vida (TTL): usado para que el datagrama no exista infinitamente en la red.
  • Protocolo: Solo se emplea cuando un datagrama IP alcanza su destino final. Este valor indica el protocolo específico de la capa de transporte al que se le pasaran los datos contenidos en ese datagrama.
  • Suma de comprobación de cabecera: Normalmente, los routers descartan los paquetes en los que se detectan errores.
  • Direcciones de IP origen y destino
  • Opciones: permite ampliar la cabecera IP
  • Datos o carga útil

Fragmentación (y reensamblado)

La cantidad máxima de datos que una trama de la capa de enlace puede transportar se conoce como unidad máxima de transmisión (MTU).
Cada uno de los enlaces existentes a lo largo de la ruta entre el emisor y el destino pueden utilizar diferentes protocolos de la capa de enlace y cada uno de estos protocolos puede utilizar una MTU diferente.

Por lo tanto es necesario fragmentar los datos del datagrama IP en dos o más datagramas IP más pequeños, encapsular cada uno de los datagramas IP más pequeños en una trama de la capa de enlace distinta y enviar dichas tramas a través del enlace de salida. Cada uno se conoce como fragmentos.
Los fragmentos tiene que ser reensamblados antes de llegar a la capa de transporte, esto se hace en los sistemas terminales para no sobrecargar de trabajo a los routers.

Pasted image 20221117132749.png

El host destino necesita saber si se trata de datagramas enteros o fragmentos y cómo ensamblarlos. Para eso se usan los campos identificador, indicador y desplazamiento de fragmentación en la cabecera del datagrama IP.

Cuando un router necesita fragmentar un datagrama, cada datagrama resultante se marca con la dirección de origen, la dirección de destino y el número de identificación del datagrama original.

Como IP es un servicio no fiable, es posible que uno o más de los fragmentos nunca lleguen a su destino. Por esta razón, con el fin de que el host de destino esté absolutamente seguro de que ha recibido el último fragmento del datagrama original, el último fragmento tiene un bit indicador puesto a 0, mientras que los demás fragmentos tienen el bit indicador puesto a 1. Además, para que el host de destino determine si falta un fragmento (y también para que pueda reensamblar los fragmentos en el orden apropiado), se utiliza el campo desplazamiento para especificar en qué posición dentro del datagrama IP original encaja el fragmento.

En el destino, la carga útil del datagrama se pasa a la capa de transporte sólo después de que la capa IP haya reconstruido completamente el datagrama IP original. Si uno o más de los fragmentos no llegan al destino, el datagrama incompleto se descarta y no se pasa a la capa de transporte.